
public abstract class Node  {
	protected static int[][] nextState; /// next state of [currenState][input]
	protected static int[][] output;
	
	public static void setTable(int[][] next, int[][] outpt)
	{
		nextState = next;
		output = outpt;
	}
	
	/**
	 * applying zero to node and each class the extends this class should 
	 * determine it's own response to such action
	 */
	public abstract Node ApplyZero();
	/**
	 * applying one to node and each class the extends this class should 
	 * determine it's own response to such action
	 */
	public abstract Node ApplyOne();
	
	/**
	 * determines whether go further in this branch to to stop
	 * according to each Tree Stopping conditions
	 */
	public abstract boolean isTerminated();
	
	public abstract boolean isEqual(Node e);
	public abstract String getResult();
	public abstract String[][] getTable();
}
